const hourSummary = (data) => {
  if (!data || data.length === 0) {
    // return null;
    return null;
  }
  let summary = {};
  for (let i = 0; i < data.length; i++) {
    let cell = data[i];
    if (!summary[cell.name]) {
      summary[cell.name] = {
        姓名: cell.name,
        工牌号: cell.uid,
        资质: "",
        合计: 0,
        管制席: 0,
        协调席: 0,
        管制席带培: 0,
        协调席带培: 0,
        管制席独立: 0,
        协调席独立: 0,
        管制席见习: 0,
        协调席见习: 0,
        普通席位: 0,
        普通席位带培: 0,
        普通席位独立: 0,
        普通席位见习: 0,
        军民航席: 0,
        军民航席带培: 0,
        军民航席独立: 0,
        军民航席见习: 0,
        带班席: 0,
        带班席带培: 0,
        带班席独立: 0,
        带班席见习: 0,
        带培: 0,
        独立: 0,
        见习: 0,
        未知: 0,
      };
    }
    let t = summary[cell.name];
    let h = cell.hours;
    t.合计 += h;
    if (cell.seat.includes("SUP")) {
      // 带班席
      t.带班席 += h;
      if (cell.role == "教员") {
        // 带班席.教员
        t.带班席带培 += h;
        t.带培 += h;
      } else if (cell.role == "学员") {
        // 带班席.学员
        t.带班席见习 += h;
        t.见习 += h;
      } else {
        // 带班席.放单
        t.带班席独立 += h;
        t.独立 += h;
      }
    } else if (cell.seat.includes("OMA")) {
      // 军民航席
      t.军民航席 += h;
      if (cell.role == "教员") {
        // 教员
        t.军民航席带培 += h;
        t.带培 += h;
      } else if (cell.role == "学员") {
        // 学员
        t.军民航席见习 += h;
        t.见习 += h;
      } else {
        // 放单
        t.军民航席独立 += h;
        t.独立 += h;
      }
    } else if (cell.seat.includes("TM")) {
      // 普通席位
      if (cell.post == "管制岗") {
        // 管制岗
        t.管制席 += h;
        t.普通席位 += h;
        if (cell.role == "教员") {
          // 教员
          t.管制席带培 += h;
          t.普通席位带培 += h;
          t.带培 += h;
        } else if (cell.role == "学员") {
          // 学员
          t.管制席见习 += h;
          t.普通席位见习 += h;
          t.见习 += h;
        } else {
          // 放单
          t.管制席独立 += h;
          t.普通席位独立 += h;
          t.独立 += h;
        }
      } else {
        // 协调岗 或 第三岗
        t.协调席 += h;
        t.普通席位 += h;
        if (cell.role == "教员") {
          // 教员
          t.协调席带培 += h;
          t.普通席位带培 += h;
          t.带培 += h;
        } else if (cell.role == "学员") {
          // 学员
          t.协调席见习 += h;
          t.普通席位见习 += h;
          t.见习 += h;
        } else {
          // 放单
          t.协调席独立 += h;
          t.普通席位独立 += h;
          t.独立 += h;
        }
      }
    } else {
      //未知席位
      t.未知 += h;
    }
  }
  // average?
  let result = Object.keys(summary).map((key) => {
    Object.keys(summary[key]).forEach((key2) => {
      if (key2 != "姓名" && key2 != "工牌号" && key2 != "资质")
        summary[key][key2] = Math.round(summary[key][key2]);
    });
    return summary[key];
  });
  return result;
};

export default hourSummary;
